Java 2 Platform, Enterprise Edition (J2EE) is a platform that enables solutions for developing, deploying and managing multi-tier net-centric or server-centric applications. J2EE utilizes Java 2 Platform, Standard Edition to extend a Java platform to the enterprise level.
Conventionally, J2EE-based products have typically been implemented as “one-off” implementations on top of the J2EE platform. A “one-off” implementation refers to a solution that is focused on a specific set of requirements, with little or no thought about reuse across other problem domains. Conventional J2EE-based one-off application architecture implementations typically include facilities for logging errors, setting up configuration behind the application, and structuring the application in accordance with the commonly known framework or pattern referred to as the model view controller.
As is well-known in the art, the model view controller framework includes three layers that work together: (1) the view layer, which describes how information is presented to an application user; (2) the controller layer, which interprets how user actions are translated into business activities or work within the application; and (3) the model layer, which performs complicated computational tasks such as working with a database. Activities and Presentations define boundary points in the Model-View Controller framework. Activities define the boundary between the Controller and the Model, while Presentations define the boundary between the Controller and the View. These boundary points define what is commonly referred to as separation of concerns.
An alternative structural framework relative to the model view controller is message oriented middleware. Message oriented middleware based applications are essentially hooked together through a series of work queues for sending messages from one processing component to another processing component through these queues. The work queues typically include some type of message send and message receive mechanisms. Message oriented middleware tasks are performed by exchanging messages in an asynchronous manner, which is in contrast to the synchronous nature of the remote procedure call paradigm. Although the remote procedure call paradigm has been widely used, the message oriented middleware approach is beginning to be used more often than it has in the past. The message oriented middleware structural framework facilitates managing the work performed by such a series of queues by creating a processing pipeline in which work is performed on messages that are passed from one processing component to another processing component. Passing messages or work units between these processing components is managed through a messaging pipeline.
Unfortunately, conventional one-off J2EE-based, and other conventional net-centric application, program implementations tend to be fairly rigidly configured and not well suited to component and/or facility re-use, ease of maintenance, and future modification.
Accordingly, there is a need for a robust toolkit that provides facilities that can be assembled in a modular manner thereby enabling an application architect to specify the fundamental architecture of a net-centric application program including specifying which facilities the architect wants, and which facilities the architect does not want, to use for a particular net-centric application program.